package main

func rotateMatrix( mat [][]int ,  n int ) [][]int {
    if (n == 1) { return mat }
    // 1.对角翻
    // 注意只需要遍历上三角部分，避免重复交换
    for i := 0; i < n; i++ {
        for j := i+1; j < n; j++ {
            if i == j { continue }
            mat[i][j], mat[j][i] =  mat[j][i], mat[i][j]
        }
    }
    // 2.中间对折翻
    // 注意只需要遍历一行的一半
    for i := 0; i < n; i++ {
        for j := 0; j < n/2; j++ {
            mat[i][j], mat[i][n-j-1] = mat[i][n-j-1], mat[i][j]
        }
    }
    return mat
}